package cn.vshare.chat;

import javax.websocket.Session;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class UserPool {
    public static Map<String,Session> onlineUserPool=new HashMap<>();
    public static  List<String> outlineMessage=new ArrayList<>();

//    添加所有留言信息
    public static void addOutlineMessage(String message){
        outlineMessage.add(message);

    }
// 查询用户所有的留言信息
    public static  List<String> getAllOutLineMessageById(String myId){
        List<String> outMessagelist=new ArrayList<>();
        for (String message:outlineMessage
             ) {
            String[] strs=message.trim().split(",");
            String myId1=strs[0].trim();
            if (myId.equals(myId1)){
                outMessagelist.add(strs[1].trim());
            }
        }
        return outMessagelist;
    }
    // 返回指定用户所有留言信息的数量
    public static int getAllOutLineMessageCountById(String myId){
        return getAllOutLineMessageById(myId).size();
    }




    // 返回指定朋友的留言信息内容 并删除留言信息
    public static List<String> getOutlineMessageByFriendId(String myId,String fId){
        List<String> fidMessageList=new ArrayList<>();

        for (String fidMessage:getAllOutLineMessageById(myId)
             ) {
            String[] strs=fidMessage.trim().split("/");
            String fid1=strs[0].trim();
            if (fId.equals(fid1)){
                fidMessageList.add(strs[1].trim());
                outlineMessage.remove(myId+","+fidMessage);
            }
        }
        return fidMessageList;
    }
    // 返回指定朋友所有留言信息的数量
    public static int  getOutlineMessageCountByFriendId(String myId,String fId){
        List<String> fidMessageList=new ArrayList<>();
        for (String fidMessage:getAllOutLineMessageById(myId)
                ) {
            String[] strs=fidMessage.trim().split("/");
            String fid1=strs[0].trim();
            if (fId.equals(fid1)){
                fidMessageList.add(strs[1].trim());
            }
        }
        return fidMessageList.size();
    }



//    添加在线用户的id 和在线用户的session
    public static void addOnlineUser(String key,Session session){
        onlineUserPool.put(key,session);
    }
//    从在线用户池中,删除下线用户的信息
    public static void removeOutLineUser(String key){
        onlineUserPool.remove(key);
    }


}
